//415. 字符串相加
//给定两个字符串形式的非负整数 num1 和num2 ，计算它们的和并同样以字符串形式返回。
//你不能使用任何內建的用于处理大整数的库（比如 BigInteger）， 也不能直接将输入的字符串转换为整数形式。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>


char * addStrings(char * num1, char * num2)
{
    int n1 = strlen(num1);
    int n2 = strlen(num2);
    int n = n1 > n2 ? n1 : n2;
    
    int arr1[10000] = {0};
    int arr2[10000] = {0};
    int res[10000] = {0};
    int n3 = n1 - 1;
    int n4 = n2 - 1;
    for(int i = 0; i < n1; i++)
        arr1[i] = num1[n3--] - '0';
    for(int i = 0; i < n2; i++)
        arr2[i] = num2[n4--] - '0';

    int k = 0;
    for(int i = 0; i <= n; i++)
    {
        res[i] = (arr1[i] + arr2[i] + k) % 10;
        k = (arr1[i] + arr2[i] + k) / 10;
    }
    if(res[n] == 0)
        n = n;
    else n = n + 1;
    char *result = (char*)malloc(sizeof(char)*10000);
    int len = 0;
    for(int i = n - 1; i >= 0; i--)
        result[len++] = res[i] + '0';
    result[len] = '\0';
    return result;
}

int main()
{
    char *s1 = "11";
    char *s2 = "124";
    printf("%s\n",addStrings(s1,s2));
    return 0;
}